package com.tiancheng.trade.settlement.mapper.payment;

import com.tiancheng.trade.settlement.vo.payment.PaymentFlowDetailVO;
import com.tiancheng.trade.settlement.vo.payment.RefundFlowDetailVO;
import com.tiancheng.trade.settlement.vo.settlement.admin.SettleQueryVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.time.LocalDate;
import java.util.Collection;
import java.util.List;

/**
 * @author kellen
 * @date 2021/3/29
 */
@Repository
public interface PaymentFlowDetailMapper {
    /**
     * 自动对账订单明细查询
     * 使用本接口需要根据fdId去重
     *
     * @param checkDateList List
     * @param idOffset      Long
     * @return List
     */
    List<PaymentFlowDetailVO> listCheckDetail(@Param("checkDateList") Collection<LocalDate> checkDateList, @Param("idOffset") Long idOffset);

    /**
     * 自动对账退款明细查询
     * 使用本接口需要根据rfdId去重
     *
     * @param checkDateList List
     * @param idOffset      Long
     * @return List
     */
    List<RefundFlowDetailVO> listCheckRefundDetail(@Param("checkDateList") Collection<LocalDate> checkDateList, @Param("idOffset") Long idOffset);

    /**
     * 手动对账订单明细查询
     * 使用本接口需要根据fdId去重
     *
     * @param settleQueryVo SettleQueryVo
     * @param idOffset      Long
     * @return List
     */
    List<PaymentFlowDetailVO> listUpdateCheckDetail(@Param("settleQueryVo") SettleQueryVo settleQueryVo, @Param("idOffset") Long idOffset);

    /**
     * 手动对账款明细查询
     * 使用本接口需要根据rfdId去重
     *
     * @param settleQueryVo SettleQueryVo
     * @param idOffset      Long
     * @return List
     */
    List<RefundFlowDetailVO> listUpdateCheckRefundDetail(@Param("settleQueryVo") SettleQueryVo settleQueryVo, @Param("idOffset") Long idOffset);
}
